﻿using System;

namespace Xenta.Enums
{
    /// <summary>
    /// Defines the category flags.
    /// </summary>
    [Flags]
    public enum CatalogCategoryFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the catalog supplier rating flags.
    /// </summary>
    [Flags]
    public enum CatalogSupplierRatingFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion
    }

    /// <summary>
    /// Defines the supplier flags.
    /// </summary>
    [Flags]
    public enum CatalogSupplierFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// The comments are allowed.
        /// </summary>
        CommentAllowed = 0x00010000,

        /// <summary>
        /// The anonymous comments are allowed.
        /// </summary>
        AnonCommentAllowed = 0x00020000,

        /// <summary>
        /// The ratings are allowed.
        /// </summary>
        RatingAllowed = 0x00040000,

        /// <summary>
        /// The anonymous ratings are allowed.
        /// </summary>
        AnonRatingAllowed = 0x00080000,

        /// <summary>
        /// The item is being promoted.
        /// </summary>
        Promoted = 0x00100000

        #endregion
    }

    /// <summary>
    /// Defines the catalog supplier comment flags.
    /// </summary>
    [Flags]
    public enum CatalogSupplierCommentFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion
    }

    /// <summary>
    /// Defines the supplier address flags.
    /// </summary>
    [Flags]
    public enum CatalogSupplierAddressFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// Indicates that an address is a default address.
        /// </summary>
        Default = 0x00010000

        #endregion
    }

    /// <summary>
    /// Defines the manager flags.
    /// </summary>
    [Flags]
    public enum CatalogManagerFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the item specification flags.
    /// </summary>
    [Flags]
    public enum CatalogItemSpecFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the catalog item rating flags.
    /// </summary>
    [Flags]
    public enum CatalogItemRatingFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion
    }

    /// <summary>
    /// Defines the item group flags.
    /// </summary>
    [Flags]
    public enum CatalogItemGroupFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// Indicates that public access is allowed.
        /// </summary>
        Public = 0x00010000

        #endregion
    }

    /// <summary>
    /// Defines the catalog item comment flags.
    /// </summary>
    [Flags]
    public enum CatalogItemCommentFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion
    }

    /// <summary>
    /// Defines the tag flags.
    /// </summary>
    [Flags]
    public enum CatalogTagFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001

        #endregion
    }

    /// <summary>
    /// Defines the item flags.
    /// </summary>
    [Flags]
    public enum CatalogItemFlags
    {
        /// <summary>
        /// Indicates no flags.
        /// </summary>
        None = 0x00000000,

        #region S

        /// <summary>
        /// Indicates that an entity is active.
        /// </summary>
        Active = 0x00000001,

        #endregion

        #region O

        /// <summary>
        /// The comments are allowed.
        /// </summary>
        CommentAllowed = 0x00010000,

        /// <summary>
        /// The anonymous comments are allowed.
        /// </summary>
        AnonCommentAllowed = 0x00020000,

        /// <summary>
        /// The ratings are allowed.
        /// </summary>
        RatingAllowed = 0x00040000,

        /// <summary>
        /// The anonymous ratings are allowed.
        /// </summary>
        AnonRatingAllowed = 0x00080000,

        /// <summary>
        /// The item is being promoted.
        /// </summary>
        Promoted = 0x00100000

        #endregion
    }
}
